<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 斐波那契数列
        // [1, 1, 2, 3, 5, 8]
        // let fn = function (n) {
        //     if (n <= 2) return 1
        //     arr = [1, 1]
        //     for (let i = n - 2; i > 0; i--) { // 1
        //         let a = arr[arr.length - 1]
        //         let b = arr[arr.length - 2]
        //         arr.push(a + b)
        //     }
        //     return arr[arr.length - 1]
        // }
        // console.log(fn(1));
        // console.log(fn(2));
        // console.log(fn(3));
        // console.log(fn(4));
        // console.log(fn(5));
        // console.log(fn(6));
        // console.log(fn(7));
        // console.log(fn(8));
        // console.log(fn(200));
        // let fn = function (str) {
        //     let arr = []
        //     if (str.length % 2 === 1) return false
        //     for (let i = 0; i < str.length; i++) {
        //         switch (str[i]) {
        //             case '(':
        //                 arr.push('(')
        //                 break;
        //             case '{':
        //                 arr.push('{')
        //                 break;
        //             case '[':
        //                 arr.push('[')
        //                 break;
        //             case '}':
        //                 if (arr[arr.length - 1] === '{') {
        //                     arr.pop()
        //                 } else {
        //                     arr.push('}')
        //                 }
        //                 break;
        //             case ')':
        //                 if (arr[arr.length - 1] === '(') {
        //                     arr.pop()
        //                 } else {
        //                     arr.push(')')
        //                 }
        //                 break;
        //             case ']':
        //                 if (arr[arr.length - 1] === '[') {
        //                     arr.pop()
        //                 } else {
        //                     arr.push(']')
        //                 }
        //                 break;
        //         }
        //     }
        //     return arr.length === 0
        // }
        // console.log(fn('{}{}(]'));
        // console.log(fn('{}{}[]'));
        // console.log(fn('{}{()}{'));
        // console.log(fn('{}{}{}'));
        // console.log(fn('{}{[]}'));
    </script>
</body>
<script>
    // let arr = [{
    //     i: 1
    // }, {
    //     o: 2
    // }]

    // arr[0].i = 2
    // // let ccc = arr.map(i => {
    // //     return i.i = i.i + 2
    // // })
    // console.log(arr);
    // console.log(ccc);
    let arr1 = [{
            id: 0,
            pid: ''
        },
        {
            id: 1,
            pid: ''
        },
        {
            id: 2,
            pid: ''
        },
        {
            id: 3,
            pid: 1
        },
        {
            id: 4,
            pid: 1
        },
        {
            id: 5,
            pid: 1
        },
        {
            id: 6,
            pid: 3
        },
        {
            id: 7,
            pid: 3
        }
    ]

    function fn(num) {
        return arr1.filter(item => {
            if (item.pid === num) {
                item.children = fn(item.id)
                return true
            }

        })
    }
    console.log(fn(''));
    // function formatArr(arr) {
    //     let newArr = []
    //     arr.map(item => {
    //         if (item.pid !== '') {
    //             arr.map(n => {
    //                 if (n.id === item.pid) {
    //                     if (n.children) {
    //                         n.children.push(item)
    //                     } else {
    //                         n.children = [item]
    //                     }
    //                 }
    //             })
    //         } else {
    //             newArr.push(item)
    //         }
    //     })
    //     return newArr
    // }
    // console.log(formatArr(arr1));
</script>
<!-- <script>
    let arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]

    let fn = function (arr, n) {
        let arr2 = []
        for (let i = 0; i < arr.length / n; i++) {
            arr2.push(arr.slice(i * n, i * n + n))
        }
        // if (arr.length % n !== 0) {
        //     arr2.push(arr.slice(Math.floor(arr.length / n) * n))
        // }
        return arr2
    }
    console.log(fn(arr1, 2));
</script> -->

</html>